<template>
  <section class="van-doc-demo-pages">
    <h1>{{ $t('title') }}</h1>
    <div class="card">
      <p>{{ $t('description') }}</p>
      <div class="van-doc-demo-pages__gallery">
        <div
          :class="['van-doc-demo-pages__item', { 'van-doc-demo-pages__item--active': index === currentDemo }]"
          v-for="(demo, index) in demos"
        >
          <h4>{{ demo.title }}</h4>
          <a
            :href="demo.source"
            target="_blank"
          >
            {{ $t('source') }}
          </a>
          <img
            :src="demo.preview"
            @click="onChangeDemo(demo, index)"
          >
        </div>
      </div>
    </div>
  </section>
</template>

<script>
import { Locale } from '../../../src';

Locale.add({
  'zh-CN': {
    vanDocDemoPages: {
      title: '示例',
      source: '源代码',
      description: '下面是一些使用 Vant 搭建的示例页面，点击图片切换至对应示例。',
      goodsDetail: '商品详情',
      userCenter: '会员中心',
      shoppingCart: '购物车'
    }
  },
  'en-US': {
    vanDocDemoPages: {
      title: 'Demo Pages',
      source: 'Source code',
      description: 'Here are some of the demo pages built using Vant, click on the picture to switch to the corresponding demo.',
      goodsDetail: 'Goods Detail',
      userCenter: 'User Center',
      shoppingCart: 'Shopping Cart'
    }
  }
});

export default {
  name: 'van-doc-demo-pages',

  data() {
    return {
      currentDemo: 0
    };
  },

  computed: {
    demos() {
      return [{
        title: this.$t('goodsDetail'),
        preview: 'https://img.yzcdn.cn/public_files/2017/10/24/7070a8d1d6504b864c605114d32f2aae.png',
        url: '/vant-demo/#/goods',
        source: 'https://github.com/youzan/vant-demo/blob/master/base/src/view/goods/index.vue'
      }, {
        title: this.$t('userCenter'),
        preview: 'https://img.yzcdn.cn/public_files/2017/10/23/e1d70757e3ab88d39a360b704be8f43f.png',
        url: '/vant-demo/#/user',
        source: 'https://github.com/youzan/vant-demo/blob/master/base/src/view/user/index.vue'
      }, {
        title: this.$t('shoppingCart'),
        preview: 'https://img.yzcdn.cn/public_files/2017/10/24/06b8b5ed3692314d434db7f6854dcdbe.png',
        url: '/vant-demo/#/cart',
        source: 'https://github.com/youzan/vant-demo/blob/master/base/src/view/cart/index.vue'
      }];
    }
  },

  beforeMount() {
    this.$emit('changeDemoURL', this.demos[0].url);
  },

  methods: {
    onChangeDemo(demo, index) {
      this.currentDemo = index;
      this.$emit('changeDemoURL', demo.url);
    }
  }
};
</script>

<style lang="less">
.van-doc-demo-pages {
  &__gallery {
    margin-top: 30px;
  }

  &__item {
    display: inline-block;
    width: 28%;
    margin-bottom: 40px;
    text-align: center;

    &:nth-child(3n+1),
    &:nth-child(3n+2) {
      margin-right: 4%;
    }

    h4 {
      font-weight: normal;
      font-size: 14px;
      line-height: 20px;
    }

    img {
      width: 100%;
      background-color: #f8f8f8;
      border-radius: 3px;
      box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
      cursor: pointer;
    }

    a {
      display: inline-block;
      margin: 4px 0 7px;
      font-size: 12px;
    }

    &--active {
      img {
        box-shadow: 0 1px 4px rgba(51, 136, 255, .4), 0 0 0 1px rgba(51, 136, 255, .4);
      }
    }
  }
}
</style>
